﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ProgramacionRedes {
    public partial class FormUsuarios : Form {
        Sistema sistema;

        public FormUsuarios(Sistema sistema) {
            InitializeComponent();
            this.sistema = sistema;
            Actualizar();
        }

        private void btn_Agregar_Click(object sender, EventArgs e) {
            FormAgregarUsuario frm = new FormAgregarUsuario(sistema);
            frm.Show();
        }

        private void btn_Eliminar_Click(object sender, EventArgs e) {
            if (listView1.SelectedItems.Count == 0) {
                MessageBox.Show("Seleccione un usuario para borrar");
                listView1.Focus();
            } else {
                sistema.Usuarios.Remove((Usuario)listView1.SelectedItems[0].Tag);
                listView1.SelectedItems[0].Remove();
            }
        }

        private void FormUsuarios_KeyUp(object sender, KeyEventArgs e) {
            if (e.KeyCode == Keys.F5) {
                Actualizar();
            }
        }

        private void Actualizar() {
            listView1.Items.Clear();
            foreach (Usuario usuario in sistema.Usuarios) {
                ListViewItem item = new ListViewItem(usuario.Id.ToString());
                item.SubItems.Add(usuario.Nombre);
                item.SubItems.Add(usuario.Password);
                item.SubItems.Add(usuario.Mail);
                item.Tag = usuario;
                listView1.Items.Add(item);
            }
        }

        private void btn_Editar_Click(object sender, EventArgs e) {
            if (listView1.SelectedItems.Count == 0) {
                MessageBox.Show("Seleccione un usuario para editar");
                listView1.Focus();
            } else {
                FormEditarUsuario frm = new FormEditarUsuario((Usuario)listView1.SelectedItems[0].Tag);
                frm.Show();
            }
        }

        private void btn_Guardar_Click(object sender, EventArgs e) {
            saveFileDialog1.ShowDialog(this);
            Persistencia.GuardarUsuarios(saveFileDialog1.FileName, sistema.Usuarios);
        }
    }
}
